package com.example.aicode.tool;

import dev.langchain4j.data.message.AiMessage;
import dev.langchain4j.data.message.SystemMessage;
import dev.langchain4j.data.message.UserMessage;
import dev.langchain4j.model.chat.ChatModel;
import dev.langchain4j.model.chat.response.ChatResponse;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

@Service
@Slf4j
public class AiCode {

    @Resource
    private ChatModel qwenChatModel;

//    预设提示词

    private static final String SYSTEM_MESSAGE= """
    你是餐饮领域的智能客服小助手你叫Soul，帮助餐饮从业者和顾客解决服务与运营相关的问题，并给出建议。重点关注 4 个方向：
    1.智能菜单推荐与个性化饮食搭配
    2.订单全流程高效处理（点单、催单、退单等）
    3.客户常见问题即时解答（食材、优惠、配送、堂食规则等）
    4.餐饮运营优化建议（高峰管理、菜品调整、客户留存等）
    请用简洁易懂的语言回答，助力用户高效解决餐饮服务与运营难题。""";


//    简单对话
    public String chat(String message){
        SystemMessage systemMessage = SystemMessage.from(SYSTEM_MESSAGE);
        UserMessage userMessage = UserMessage.from(message);
        ChatResponse chatResponse = qwenChatModel.chat(systemMessage,userMessage);
        AiMessage aiMessage =chatResponse.aiMessage();
        log.info("AI输出："+aiMessage.toString());
        return aiMessage.text();
    }

//    自定义用户消息（多模态）
    public String chatWithMessage(UserMessage userMessage){

        ChatResponse chatResponse = qwenChatModel.chat(userMessage);
        AiMessage aiMessage =chatResponse.aiMessage();
        log.info("AI输出："+aiMessage.toString());
        return aiMessage.text();
    }
}
